﻿using System;
namespace Kis.Xroad.Eu {
    
    
    [System.SerializableAttribute()]
    public partial class SequenceNullabilityOfBuiltInTypes {
        
        private string @__xsdStringNil;
        
        private string @__xsdStringNonNil;
        
        private System.DateTime? @__xsdDateTimeNil;
        
        private System.DateTime @__xsdDateTimeNonNil;
        
        private System.TimeSpan? @__xsdDurationNil;
        
        private System.TimeSpan @__xsdDurationNonNil;
        
        private System.Boolean? @__xsdBooleanNillable;
        
        private bool @__xsdBooleanNonNillable;
        
        private System.UInt16? @__xsdUnsignedIntNillable;
        
        private ushort @__xsdUnsignedIntNonNillable;
        
        public SequenceNullabilityOfBuiltInTypes() {
        }
        
        /// <summary>
        /// All parameters
        /// </summary>
        public SequenceNullabilityOfBuiltInTypes(string @xsdStringNil, string @xsdStringNonNil, System.DateTime? @xsdDateTimeNil, System.DateTime @xsdDateTimeNonNil, System.TimeSpan? @xsdDurationNil, System.TimeSpan @xsdDurationNonNil, System.Boolean? @xsdBooleanNillable, bool @xsdBooleanNonNillable, System.UInt16? @xsdUnsignedIntNillable, ushort @xsdUnsignedIntNonNillable) {
            this.@__xsdStringNil = @xsdStringNil;
            this.@__xsdStringNonNil = @xsdStringNonNil;
            this.@__xsdDateTimeNil = @xsdDateTimeNil;
            this.@__xsdDateTimeNonNil = @xsdDateTimeNonNil;
            this.@__xsdDurationNil = @xsdDurationNil;
            this.@__xsdDurationNonNil = @xsdDurationNonNil;
            this.@__xsdBooleanNillable = @xsdBooleanNillable;
            this.@__xsdBooleanNonNillable = @xsdBooleanNonNillable;
            this.@__xsdUnsignedIntNillable = @xsdUnsignedIntNillable;
            this.@__xsdUnsignedIntNonNillable = @xsdUnsignedIntNonNillable;
        }
        
        /// <summary>
        /// Required parameters
        /// </summary>
        public SequenceNullabilityOfBuiltInTypes(string @xsdStringNonNil, System.DateTime @xsdDateTimeNonNil, System.TimeSpan @xsdDurationNonNil, bool @xsdBooleanNonNillable, ushort @xsdUnsignedIntNonNillable) {
            this.@__xsdStringNonNil = @xsdStringNonNil;
            this.@__xsdDateTimeNonNil = @xsdDateTimeNonNil;
            this.@__xsdDurationNonNil = @xsdDurationNonNil;
            this.@__xsdBooleanNonNillable = @xsdBooleanNonNillable;
            this.@__xsdUnsignedIntNonNillable = @xsdUnsignedIntNonNillable;
        }
        
        /// <summary>
        /// Copy Constructor
        /// </summary>
        protected SequenceNullabilityOfBuiltInTypes(SequenceNullabilityOfBuiltInTypes @sequenceNullabilityOfBuiltInTypes) {
            this.@__xsdStringNil = @sequenceNullabilityOfBuiltInTypes.XsdStringNil;
            this.@__xsdStringNonNil = @sequenceNullabilityOfBuiltInTypes.XsdStringNonNil;
            this.@__xsdDateTimeNil = @sequenceNullabilityOfBuiltInTypes.XsdDateTimeNil;
            this.@__xsdDateTimeNonNil = @sequenceNullabilityOfBuiltInTypes.XsdDateTimeNonNil;
            this.@__xsdDurationNil = @sequenceNullabilityOfBuiltInTypes.XsdDurationNil;
            this.@__xsdDurationNonNil = @sequenceNullabilityOfBuiltInTypes.XsdDurationNonNil;
            this.@__xsdBooleanNillable = @sequenceNullabilityOfBuiltInTypes.XsdBooleanNillable;
            this.@__xsdBooleanNonNillable = @sequenceNullabilityOfBuiltInTypes.XsdBooleanNonNillable;
            this.@__xsdUnsignedIntNillable = @sequenceNullabilityOfBuiltInTypes.XsdUnsignedIntNillable;
            this.@__xsdUnsignedIntNonNillable = @sequenceNullabilityOfBuiltInTypes.XsdUnsignedIntNonNillable;
        }
        
        public virtual string XsdStringNil {
            get {
                return this.@__xsdStringNil;
            }
            set {
                this.@__xsdStringNil = value;
            }
        }
        
        public virtual string XsdStringNonNil {
            get {
                return this.@__xsdStringNonNil;
            }
            set {
                this.@__xsdStringNonNil = value;
            }
        }
        
        public virtual System.DateTime? XsdDateTimeNil {
            get {
                return this.@__xsdDateTimeNil;
            }
            set {
                this.@__xsdDateTimeNil = value;
            }
        }
        
        public virtual System.DateTime XsdDateTimeNonNil {
            get {
                return this.@__xsdDateTimeNonNil;
            }
            set {
                this.@__xsdDateTimeNonNil = value;
            }
        }
        
        public virtual System.TimeSpan? XsdDurationNil {
            get {
                return this.@__xsdDurationNil;
            }
            set {
                this.@__xsdDurationNil = value;
            }
        }
        
        public virtual System.TimeSpan XsdDurationNonNil {
            get {
                return this.@__xsdDurationNonNil;
            }
            set {
                this.@__xsdDurationNonNil = value;
            }
        }
        
        public virtual System.Boolean? XsdBooleanNillable {
            get {
                return this.@__xsdBooleanNillable;
            }
            set {
                this.@__xsdBooleanNillable = value;
            }
        }
        
        public virtual bool XsdBooleanNonNillable {
            get {
                return this.@__xsdBooleanNonNillable;
            }
            set {
                this.@__xsdBooleanNonNillable = value;
            }
        }
        
        public virtual System.UInt16? XsdUnsignedIntNillable {
            get {
                return this.@__xsdUnsignedIntNillable;
            }
            set {
                this.@__xsdUnsignedIntNillable = value;
            }
        }
        
        public virtual ushort XsdUnsignedIntNonNillable {
            get {
                return this.@__xsdUnsignedIntNonNillable;
            }
            set {
                this.@__xsdUnsignedIntNonNillable = value;
            }
        }
    }
}
